package com.csair.platform.cit.facade;

import java.util.List;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import com.csair.invoice.common.base.vo.JsonResult;
import com.csair.platform.cit.facade.model.CitDeclareRecordVo;
import com.csair.platform.cit.facade.model.CitSendParam;
import com.csair.platform.cit.facade.model.CitSendResultQueryParam;

/**
 * 申报接口
 * @author caoyu
 *
 */
@RequestMapping("/declare")
public interface DeclareApi {

	/**
	 * 发送申报
	 * @param param 申报参数
	 * @return
	 */
	@PostMapping("/send")
	JsonResult<Void> send(@RequestBody CitSendParam param);

	/**
	 * 获取申报进度
	 * @param param 申报参数
	 * @return
	 */
	@PostMapping("/findByPage")
	JsonResult<CitDeclareRecordVo> findByPage(@RequestBody CitSendResultQueryParam param);
	
    /**
     * 根据id删除数据
     * @param ids ID列表
     */
    @PostMapping("/deleteById")
    JsonResult<Void> deleteByListId(@RequestBody List<Long> ids);


	/**
	 *  是否存在申报记录
	 * @param param
	 * @return
	 */
	@PostMapping("/isExistsDeclareRecord")
	JsonResult  isExistsDeclareRecord(@RequestBody CitSendParam param);

	/**
	 * 根据id获取数据
	 * @param id
	 * @return
	 */
	@PostMapping("/getById/{id}")
	JsonResult<CitDeclareRecordVo> getById(@PathVariable Long id);
}
